ESP8266开发一个实时电子气象表(一)——时间获取

2022年1月13日 Jerry 2739 2023年11月6日

使用ESP8266开发一个实时电子气象表,主要实现功能有 时间、日期、星期、室内温湿度、天气预报等功能。

先上成品图: 刷新率的问题,手机拍出来会闪。。

界面介绍:

代码 解析:

1、WIFI链接:

void connectWiFi()
{
    //设置模式
    WiFi.mode(WIFI_STA);
    //开始连接
    WiFi.begin(ssid, pswd);

    while (WiFi.status() != WL_CONNECTED) 
    {
      delay(500);
      Serial.print(".");
    }

    //获取到的IP  WiFi.localIP()
    u8g2.clearBuffer();
    u8g2.drawStr(0,20,"Success");
    u8g2.drawStr(0,40,WiFi.localIP().toString().c_str());
    u8g2.sendBuffer();
}

2、NTP时间同步:

#include <WiFiUdp.h>
#include <NTPClient.h>

WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "ntp.aliyun.com", 3600 * 8, 1800 * 1000);

void setup() {
    timeClient.begin();
}

void loop(){
    timeClient.update();
    nowTime = timeClient.getFormattedTime();
}

关于星期,翻 NTPClient 代码发现有个方法返回的是星期:timeClient.getDay();  这个函数返回 0-6,其中0 代表 周日 Sunday

于是,有了下面这个转换日期的函数

char* getDayStr(int day)
{
    switch(day)
    {
        case 0:
          return "Sun";
          break;
        case 1:
          return "Mon";
          break;
        case 2:
          return "Tue";
          break;
        case 3:
          return "Wed";
          break;
        case 4:
          return "Thur";
          break;
        case 5:
          return "Fri";
          break;
        case 6:
          return "Sat";
          break;
    }
}

3、温湿度获取:

温湿度使用的是DHT11模块,有现成的arduinuo库 #include "DHTesp.h"

#include "DHTesp.h"

//dht 初始化
dht.setup(D0, DHTesp::DHT11); // Connect DHT sensor to D0

//dht 读取
float humidity = dht.getHumidity();
float temperature = dht.getTemperature();

Serial.println(humidity);
Serial.println(temperature);

4、u8g2打印显示:

使用ESP8266模块驱动0.96寸OLED ,网上的教程有很多,这里要注意OLED的坐标系,

还有他的字体库:https://github.com/olikraus/u8g2/wiki/u8g2setupcpp   

国内经常打不开,打开也看不到图片,于是我把他的pdt下载了下来:https://www.jerrycoding.com/tool/u8g2lib/

连线如下:

坐标系如下:

基本的u8g2函数参考:https://blog.csdn.net/weixin_30510153/article/details/96227475

本篇到这结束,有上面几个方法就能实现 实时时间、星期、温湿度打印啦!


原创文章,转载请注明出处: https://jerrycoding.com/article/esp8266-clock

微信
jerry微信赞助
支付宝
jerry支付宝赞助

您尚未登录,暂时无法评论。请先 登录 或者 注册

0 人参与 | 0 条评论